/*
 * semaforo.h
 *
 *  Created on: Jul 23, 2014
 *      Author: diego GG
 */

#ifndef SEMAFORO_H_
#define SEMAFORO_H_

#include <vector> 
#include <string>

class Calle ;

class Semaforo {
	private:
		std::vector<Calle *> * calles;
		std::string nombre;
		int distancia ;
		Semaforo * desde ;
		bool fueHabilitado;
	public:
	Semaforo(std::string nombre);
	void agregarCalle(std::string nombre,std::string,int capacidad);
	std::vector<Calle *> * getCalles() ;
	bool getCalle(std::string nombre, Calle ** calle) const;
	void cambiarNombre( std::string n) ;
	std::string getNombre() const;
	bool getEstado() const;
	int  getCarga() ;
	void setDesde (Semaforo*) ; 
	Semaforo * getDesde () ; 
	void habilitar();
	void desHabilitar();
	void enlazar( Semaforo* s,std::string n,std::string ) ;
	int getDistancia() ; 
	void setDistancia(int d) ;
	void print() ;
};




#endif /* SEMAFORO_H_ */
